package com.spirng.leetcode.day09;

import java.util.ArrayList;
import java.util.HashMap;

public class Test860 {
    public static void main(String[] args) {
        Test860 test860 = new Test860();
        test860.lemonadeChange(new int[]{5,5,5,5,20,20,5,5,20,5});
    }
    public boolean lemonadeChange(int[] bills) {
        boolean res=true;
         HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
         map.put(5,0);
         map.put(10,0);
         map.put(20,0);
         if(bills[0]!=5){
             return false;
         }
        for (int i = 0; i < bills.length; i++) {
            if(bills[i]!=5){
                if(bills[i]-5==15){
                    Integer i1 = map.get(10);
                    Integer i2 = map.get(5);
                    if(i1>=1&&i2>=1){
                        map.put(10,map.get(10)-1);
                        map.put(5,map.get(5)-1);
                    } else if(i2>=3){
                        map.put(5,map.get(5)-3);
                    }else {
                        res=false;
                    }
                }
                if(bills[i]-5==5){
                    Integer i1 = map.get(5);
                    if(i1>=1){
                        map.put(5,map.get(5)-1);
                    }else {
                        res=false;
                    }
                }
            }
            map.put(bills[i],map.getOrDefault(bills[i],0)+1);
        }
        return res;
    }
}
